package com.cskaoyan.javase.oop1._15access._2member;

/**
 * 类中所有结构的访问权限修饰符,包括类中可以定义的:
 *      1.成员变量,静态成员变量
 *      2.成员方法,静态成员方法
 *      3.构造器
 * 以上结构,在使用访问权限修饰时,四种访问级别都是可用的
 * public：任意类均能访问，实际就是没有限制访问权限。
 * (今天不讲,跳过)protected：
 *      同包中的其他类都可以访问，不同包下必须是子类才能够访问。
 * （缺省的）什么关键字都不写，表示同包中的其他类都可以访问。
 * private：仅对自身类中的其他成员可见。
 *
 * 注意:
 *      要注意访问级别是向下兼容的
 *      如果是public权限,那么跨包就可以随意访问了,同包就更是可以随意访问
 *      如果是默认访问权限,那么同包下随意访问,同类中肯定也是随意访问
 *
 *      局部变量，已经被作用域限制死了作用范围，访问权限对它而言毫无意义。
 *      局部变量不能使用访问权限修饰符修饰！
 *
 * @since 14:38
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class AccessDemo {
    public int num = 10;
    static int numStatic = 20;

    private void test() {
        // 局部变量是没有访问权限的概念的,它不需要
        int a = 10;
    }

    public Student method(){
        Student s = new Student();
        return s;
    }
}

class Student {
    private int age;

    // 该test方法需要传入一个同类的对象
    // 在同一个类当中,一定是可以随意访问自身成员的,无论私有不私有,也不管对象是外部传入的,还是如何得来的
    public void test(Student s) {
        System.out.println(s.age);
    }
}